package cn.com.zetatech.loader.api;

import java.io.File;
import java.util.Map;

/**
 * 文件解析接口
 * @author zhengbs
 */
public abstract class AbstractFileResolver<T, R> implements FileResolver<T, R> {

    /**
     * 文件解析公共方法
     * @param filePath 文件本地路径
     * @return
     */
    @Override
    public R resolve(String filePath, Map<String, Object> extraInfo) {
        // 获取附加信息
        T params = getParams(extraInfo);
        // 校验文件
        File file = new File(filePath);
        checkFile(file, params);
        // 解析文件组装报文
        return parse(file, params);
    }

}
